import { defineStore } from 'pinia'
import type { GlobalState } from './types'
import { DEFAULT_PRIMARY } from '@/config'

const name = import.meta.env.VITE_STORE_NAME
export const useGlobalStore = defineStore(`${name}-global`, {
  // 修改默认值之后，需清除 localStorage 数据
  state: (): GlobalState => ({
    // 主题颜色
    primary: DEFAULT_PRIMARY,
    // 深色模式
    isDark: false,
    // 灰色模式
    isGrey: false,
    // 色弱模式
    isWeak: false,
  }),
  actions: {
    // Set GlobalState
    setGlobalState(...args: ObjToKeyValArray<GlobalState>) {
      this.$patch({ [args[0]]: args[1] })
    },
  },
  persist: true,
})
